egg 4.1.0-beta.3 → 4.1.0-beta.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent.d.ts +3 -7
- package/dist/agent.js +6 -10
- package/dist/app/extend/context.d.ts +166 -193
- package/dist/app/extend/context.js +259 -244
- package/dist/app/extend/helper.d.ts +31 -36
- package/dist/app/extend/helper.js +41 -45
- package/dist/app/extend/request.d.ts +127 -140
- package/dist/app/extend/request.js +258 -219
- package/dist/app/extend/response.d.ts +22 -32
- package/dist/app/extend/response.js +34 -36
- package/dist/app/middleware/body_parser.d.ts +2 -2
- package/dist/app/middleware/body_parser.js +3 -7
- package/dist/app/middleware/meta.d.ts +9 -10
- package/dist/app/middleware/meta.js +19 -13
- package/dist/app/middleware/notfound.d.ts +6 -10
- package/dist/app/middleware/notfound.js +28 -25
- package/dist/app/middleware/override_method.d.ts +2 -2
- package/dist/app/middleware/override_method.js +3 -7
- package/dist/app/middleware/site_file.d.ts +8 -12
- package/dist/app/middleware/site_file.js +52 -37
- package/dist/config/config.default.d.ts +3 -8
- package/dist/config/config.default.js +377 -256
- package/dist/config/config.local.d.ts +3 -10
- package/dist/config/config.local.js +7 -6
- package/dist/config/config.unittest.d.ts +3 -9
- package/dist/config/config.unittest.js +7 -9
- package/dist/config/favicon.png +0 -0
- package/dist/config/plugin.d.ts +3 -124
- package/dist/config/plugin.js +162 -53
- package/dist/index.d.ts +84 -19
- package/dist/index.js +87 -19
- package/dist/lib/agent.d.ts +12 -17
- package/dist/lib/agent.js +45 -54
- package/dist/lib/application.d.ts +47 -62
- package/dist/lib/application.js +249 -197
- package/dist/lib/core/base_context_class.d.ts +13 -17
- package/dist/lib/core/base_context_class.js +15 -17
- package/dist/lib/core/base_context_logger.d.ts +35 -39
- package/dist/lib/core/base_context_logger.js +60 -58
- package/dist/lib/core/base_hook_class.d.ts +11 -17
- package/dist/lib/core/base_hook_class.js +22 -26
- package/dist/lib/core/context_httpclient.d.ts +16 -20
- package/dist/lib/core/context_httpclient.js +26 -29
- package/dist/lib/core/httpclient.d.ts +12 -15
- package/dist/lib/core/httpclient.js +37 -34
- package/dist/lib/core/logger.d.ts +3 -7
- package/dist/lib/core/logger.js +36 -30
- package/dist/lib/core/messenger/IMessenger.d.ts +49 -53
- package/dist/lib/core/messenger/IMessenger.js +2 -1
- package/dist/lib/core/messenger/base.d.ts +7 -11
- package/dist/lib/core/messenger/base.js +29 -29
- package/dist/lib/core/messenger/index.d.ts +4 -8
- package/dist/lib/core/messenger/index.js +8 -11
- package/dist/lib/core/messenger/ipc.d.ts +55 -59
- package/dist/lib/core/messenger/ipc.js +138 -120
- package/dist/lib/core/messenger/local.d.ts +56 -61
- package/dist/lib/core/messenger/local.js +131 -124
- package/dist/lib/core/utils.d.ts +2 -5
- package/dist/lib/core/utils.js +66 -44
- package/dist/lib/egg.d.ts +272 -294
- package/dist/lib/egg.js +574 -507
- package/dist/lib/error/CookieLimitExceedError.d.ts +4 -7
- package/dist/lib/error/CookieLimitExceedError.js +12 -15
- package/dist/lib/error/MessageUnhandledRejectionError.d.ts +4 -7
- package/dist/lib/error/MessageUnhandledRejectionError.js +12 -15
- package/dist/lib/error/index.d.ts +2 -3
- package/dist/lib/error/index.js +3 -4
- package/dist/lib/loader/AgentWorkerLoader.d.ts +7 -12
- package/dist/lib/loader/AgentWorkerLoader.js +18 -22
- package/dist/lib/loader/AppWorkerLoader.d.ts +12 -17
- package/dist/lib/loader/AppWorkerLoader.js +37 -35
- package/dist/lib/loader/EggApplicationLoader.d.ts +3 -7
- package/dist/lib/loader/EggApplicationLoader.js +4 -7
- package/dist/lib/loader/index.d.ts +3 -4
- package/dist/lib/loader/index.js +4 -5
- package/dist/lib/start.d.ts +18 -22
- package/dist/lib/start.js +42 -32
- package/dist/lib/types.d.ts +309 -230
- package/dist/lib/types.js +31 -14
- package/dist/lib/types.plugin.d.ts +21 -0
- package/dist/lib/types.plugin.js +24 -0
- package/dist/schedule.d.ts +2 -0
- package/dist/schedule.js +5 -0
- package/dist/urllib.d.ts +1 -1
- package/dist/urllib.js +2 -3
- package/package.json +42 -32
- package/dist/lib/utils.d.ts +0 -5
- package/dist/lib/utils.js +0 -14
|
@@ -1,126 +1,133 @@
|
|
|
1
|
+
import { debuglog } from 'node:util';
|
|
1
2
|
import { BaseMessenger } from "./base.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
//#region src/lib/core/messenger/local.ts
|
|
5
|
-
const debug = debuglog("egg/lib/core/messenger/local");
|
|
3
|
+
const debug = debuglog('egg/lib/core/messenger/local');
|
|
6
4
|
/**
|
|
7
|
-
* Communication between app worker and agent worker with EventEmitter
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
5
|
+
* Communication between app worker and agent worker with EventEmitter
|
|
6
|
+
*/
|
|
7
|
+
export class Messenger extends BaseMessenger {
|
|
8
|
+
pid;
|
|
9
|
+
constructor(egg) {
|
|
10
|
+
super(egg);
|
|
11
|
+
this.pid = String(process.pid);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Send message to all agent and app
|
|
15
|
+
* @param {String} action - message key
|
|
16
|
+
* @param {Object} data - message value
|
|
17
|
+
* @return {Messenger} this
|
|
18
|
+
*/
|
|
19
|
+
broadcast(action, data) {
|
|
20
|
+
debug('[%s:%s] broadcast %s with %j', this.egg.type, this.pid, action, data);
|
|
21
|
+
this.send(action, data, 'both');
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* send message to the specified process
|
|
26
|
+
* Notice: in single process mode, it only can send to self process,
|
|
27
|
+
* and it will send to both agent and app's messengers.
|
|
28
|
+
* @param {String} workerId - the workerId of the receiver
|
|
29
|
+
* @param {String} action - message key
|
|
30
|
+
* @param {Object} data - message value
|
|
31
|
+
* @return {Messenger} this
|
|
32
|
+
*/
|
|
33
|
+
sendTo(workerId, action, data) {
|
|
34
|
+
debug('[%s:%s] send %s with %j to %s', this.egg.type, this.pid, action, data, workerId);
|
|
35
|
+
if (String(workerId) !== this.pid) {
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
this.send(action, data, 'both');
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* send message to one worker by random
|
|
43
|
+
* Notice: in single process mode, we only start one agent worker and one app worker
|
|
44
|
+
* - if it's running in agent, it will send to one of app workers
|
|
45
|
+
* - if it's running in app, it will send to agent
|
|
46
|
+
* @param {String} action - message key
|
|
47
|
+
* @param {Object} data - message value
|
|
48
|
+
* @return {Messenger} this
|
|
49
|
+
*/
|
|
50
|
+
sendRandom(action, data) {
|
|
51
|
+
debug('[%s:%s] send %s with %o to opposite', this.egg.type, this.pid, action, data);
|
|
52
|
+
this.send(action, data, 'opposite');
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* send message to app
|
|
57
|
+
* @param {String} action - message key
|
|
58
|
+
* @param {Object} data - message value
|
|
59
|
+
* @return {Messenger} this
|
|
60
|
+
*/
|
|
61
|
+
sendToApp(action, data) {
|
|
62
|
+
debug('[%s:%s] send %s with %o to all app', this.egg.type, this.pid, action, data);
|
|
63
|
+
this.send(action, data, 'application');
|
|
64
|
+
return this;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* send message to agent
|
|
68
|
+
* @param {String} action - message key
|
|
69
|
+
* @param {Object} data - message value
|
|
70
|
+
* @return {Messenger} this
|
|
71
|
+
*/
|
|
72
|
+
sendToAgent(action, data) {
|
|
73
|
+
debug('[%s:%s] send %s with %o to all agent', this.egg.type, this.pid, action, data);
|
|
74
|
+
this.send(action, data, 'agent');
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @param {String} action - message key
|
|
79
|
+
* @param {Object} data - message value
|
|
80
|
+
* @param {String} to - let master know how to send message
|
|
81
|
+
* @return {Messenger} this
|
|
82
|
+
*/
|
|
83
|
+
send(action, data, to) {
|
|
84
|
+
if (to === 'app') {
|
|
85
|
+
// alias app to application
|
|
86
|
+
to = 'application';
|
|
87
|
+
}
|
|
88
|
+
// use nextTick to keep it async as IPC messenger
|
|
89
|
+
process.nextTick(() => {
|
|
90
|
+
const { egg } = this;
|
|
91
|
+
let application;
|
|
92
|
+
let agent;
|
|
93
|
+
let opposite;
|
|
94
|
+
if (egg.type === 'application') {
|
|
95
|
+
application = egg;
|
|
96
|
+
agent = egg.agent;
|
|
97
|
+
opposite = agent;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
agent = egg;
|
|
101
|
+
application = egg.application;
|
|
102
|
+
opposite = application;
|
|
103
|
+
}
|
|
104
|
+
if (!to) {
|
|
105
|
+
to = egg.type === 'application' ? 'agent' : 'application';
|
|
106
|
+
}
|
|
107
|
+
debug('[%s:%s] send action:%s with %o to %s', this.egg.type, this.pid, action, data, to);
|
|
108
|
+
if (application && application.messenger && (to === 'application' || to === 'both')) {
|
|
109
|
+
application.messenger.onMessage({ action, data });
|
|
110
|
+
}
|
|
111
|
+
if (agent && agent.messenger && (to === 'agent' || to === 'both')) {
|
|
112
|
+
agent.messenger.onMessage({ action, data });
|
|
113
|
+
}
|
|
114
|
+
if (opposite && opposite.messenger && to === 'opposite') {
|
|
115
|
+
opposite.messenger.onMessage({ action, data });
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
return this;
|
|
119
|
+
}
|
|
120
|
+
onMessage(message) {
|
|
121
|
+
if (typeof message?.action === 'string') {
|
|
122
|
+
debug('[%s:%s] got message %s with %j', this.egg.type, this.pid, message.action, message.data);
|
|
123
|
+
this.emit(message.action, message.data);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
debug('[%s:%s] got an invalid message %j', this.egg.type, this.pid, message);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
close() {
|
|
130
|
+
this.removeAllListeners();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvbWVzc2VuZ2VyL2xvY2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUUxQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUV2RDs7R0FFRztBQUNILE1BQU0sT0FBTyxTQUFVLFNBQVEsYUFBYTtJQUNqQyxHQUFHLENBQVM7SUFFckIsWUFBWSxHQUF1QjtRQUNqQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFDLE1BQWMsRUFBRSxJQUFjO1FBQ3RDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsSUFBYztRQUNyRCxLQUFLLENBQUMsK0JBQStCLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hGLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUs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
|
package/dist/lib/core/utils.d.ts
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
declare function
|
|
3
|
-
declare function safeParseURL(url: string): URL | null;
|
|
4
|
-
//#endregion
|
|
5
|
-
export { convertObject, safeParseURL };
|
|
1
|
+
export declare function convertObject(obj: any, ignore?: string | RegExp | (string | RegExp)[]): any;
|
|
2
|
+
export declare function safeParseURL(url: string): URL | null;
|
package/dist/lib/core/utils.js
CHANGED
|
@@ -1,48 +1,70 @@
|
|
|
1
|
-
import util from
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import util from 'node:util';
|
|
2
|
+
import { isSymbol, isRegExp, isPrimitive, isClass, isFunction, isGeneratorFunction, isAsyncFunction } from 'is-type-of';
|
|
3
|
+
export function convertObject(obj, ignore = []) {
|
|
4
|
+
if (!Array.isArray(ignore)) {
|
|
5
|
+
ignore = [ignore];
|
|
6
|
+
}
|
|
7
|
+
for (const key of Object.keys(obj)) {
|
|
8
|
+
obj[key] = convertValue(key, obj[key], ignore);
|
|
9
|
+
}
|
|
10
|
+
return obj;
|
|
9
11
|
}
|
|
10
12
|
function convertValue(key, value, ignore) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
13
|
+
if (value === null || value === undefined) {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
let hit = false;
|
|
17
|
+
for (const matchKey of ignore) {
|
|
18
|
+
if (typeof matchKey === 'string' && matchKey === key) {
|
|
19
|
+
hit = true;
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
else if (isRegExp(matchKey) && matchKey.test(key)) {
|
|
23
|
+
hit = true;
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (!hit) {
|
|
28
|
+
if (isSymbol(value) || isRegExp(value) || value instanceof URL) {
|
|
29
|
+
return value.toString();
|
|
30
|
+
}
|
|
31
|
+
if (isPrimitive(value) || Array.isArray(value)) {
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// only convert recursively when it's a plain object,
|
|
36
|
+
// o = {}
|
|
37
|
+
if (Object.getPrototypeOf(value) === Object.prototype) {
|
|
38
|
+
return convertObject(value, ignore);
|
|
39
|
+
}
|
|
40
|
+
// support class
|
|
41
|
+
const name = value.name || 'anonymous';
|
|
42
|
+
if (isClass(value)) {
|
|
43
|
+
return `<Class ${name}>`;
|
|
44
|
+
}
|
|
45
|
+
// support generator function
|
|
46
|
+
if (isFunction(value)) {
|
|
47
|
+
if (isGeneratorFunction(value))
|
|
48
|
+
return `<GeneratorFunction ${name}>`;
|
|
49
|
+
if (isAsyncFunction(value))
|
|
50
|
+
return `<AsyncFunction ${name}>`;
|
|
51
|
+
return `<Function ${name}>`;
|
|
52
|
+
}
|
|
53
|
+
const typeName = value.constructor.name;
|
|
54
|
+
if (typeName) {
|
|
55
|
+
if (Buffer.isBuffer(value) || typeof value === 'string') {
|
|
56
|
+
return `<${typeName} len: ${value.length}>`;
|
|
57
|
+
}
|
|
58
|
+
return `<${typeName}>`;
|
|
59
|
+
}
|
|
60
|
+
return util.format(value);
|
|
38
61
|
}
|
|
39
|
-
function safeParseURL(url) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
62
|
+
export function safeParseURL(url) {
|
|
63
|
+
try {
|
|
64
|
+
return new URL(url);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
45
69
|
}
|
|
46
|
-
|
|
47
|
-
//#endregion
|
|
48
|
-
export { convertObject, safeParseURL };
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvcmUvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4SCxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQVEsRUFBRSxTQUFnRCxFQUFFO0lBQ3hGLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDM0IsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUNELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ25DLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsR0FBVyxFQUFFLEtBQVUsRUFBRSxNQUEyQjtJQUN4RSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzFDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQztJQUNoQixLQUFLLE1BQU0sUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzlCLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLFFBQVEsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNyRCxHQUFHLEdBQUcsSUFBSSxDQUFDO1lBQ1gsTUFBTTtRQUNSLENBQUM7YUFBTSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEQsR0FBRyxHQUFHLElBQUksQ0FBQztZQUNYLE1BQU07UUFDUixDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNULElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDL0QsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQscURBQXFEO0lBQ3JELFNBQVM7SUFDVCxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDO0lBQ3ZDLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkIsT0FBTyxVQUFVLElBQUksR0FBRyxDQUFDO0lBQzNCLENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QixJQUFJLG1CQUFtQixDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sc0JBQXNCLElBQUksR0FBRyxDQUFDO1FBQ3JFLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sa0JBQWtCLElBQUksR0FBRyxDQUFDO1FBQzdELE9BQU8sYUFBYSxJQUFJLEdBQUcsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDeEMsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNiLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4RCxPQUFPLElBQUksUUFBUSxTQUFTLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLFFBQVEsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBVztJQUN0QyxJQUFJLENBQUM7UUFDSCxPQUFPLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDIn0=
|