oipage 0.3.0 → 1.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/CHANGELOG +15 -13
  2. package/README.md +1 -102
  3. package/bin/mineTypes.json +105 -0
  4. package/{nodejs/core → bin}/network.js +7 -4
  5. package/bin/resolve404.js +78 -0
  6. package/bin/run +8 -200
  7. package/bin/serve.js +64 -0
  8. package/images/file.png +0 -0
  9. package/images/folder.png +0 -0
  10. package/images/goback.png +0 -0
  11. package/{corejs → nodejs}/animation/index.js +8 -2
  12. package/nodejs/deeplog/index.d.ts +10 -0
  13. package/nodejs/deeplog/index.js +35 -0
  14. package/nodejs/linelog/index.d.ts +9 -0
  15. package/nodejs/{core/log.js → linelog/index.js} +12 -55
  16. package/{corejs → nodejs}/throttle/index.js +9 -3
  17. package/package.json +12 -5
  18. package/web/animation/index.d.ts +12 -0
  19. package/web/animation/index.js +108 -0
  20. package/{browserjs → web}/getStyle/index.js +8 -2
  21. package/{browserjs → web}/onReady/index.js +8 -2
  22. package/web/setStyle/index.js +11 -0
  23. package/web/throttle/index.d.ts +31 -0
  24. package/web/throttle/index.js +56 -0
  25. package/AUTHORS.txt +0 -6
  26. package/bin/options.js +0 -74
  27. package/browserjs/index.d.ts +0 -13
  28. package/browserjs/index.js +0 -9
  29. package/browserjs/setStyle/index.js +0 -5
  30. package/corejs/index.d.ts +0 -10
  31. package/corejs/index.js +0 -7
  32. package/nodejs/core/file.js +0 -163
  33. package/nodejs/core/image.js +0 -5
  34. package/nodejs/core/options.js +0 -49
  35. package/nodejs/core/remote.js +0 -60
  36. package/nodejs/core/responseFileList.js +0 -28
  37. package/nodejs/core/server.js +0 -190
  38. package/nodejs/data/404.js +0 -52
  39. package/nodejs/data/images/file.js +0 -1
  40. package/nodejs/data/images/folder.js +0 -1
  41. package/nodejs/data/mime.types.js +0 -112
  42. package/nodejs/form/common.js +0 -3
  43. package/nodejs/form/index.js +0 -80
  44. package/nodejs/form/select.js +0 -10
  45. package/nodejs/index.js +0 -58
  46. package/nodejs/loader/simpleScss.js +0 -248
  47. package/nodejs/loader/xhtml.js +0 -521
  48. package/nodejs/reader/plain.js +0 -20
  49. package/stylecss/index.css +0 -3
  50. package/stylecss/normalize.css +0 -94
  51. package/stylecss/rasterize.css +0 -318
  52. package/stylecss/skeleton.css +0 -16
  53. package/types/get-options.d.ts +0 -6
  54. package/types/index.d.ts +0 -187
  55. /package/{corejs → nodejs}/animation/index.d.ts +0 -0
  56. /package/{corejs → nodejs}/throttle/index.d.ts +0 -0
  57. /package/{browserjs → web}/getStyle/index.d.ts +0 -0
  58. /package/{browserjs → web}/onReady/index.d.ts +0 -0
  59. /package/{browserjs → web}/setStyle/index.d.ts +0 -0
@@ -1,163 +0,0 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
-
4
- // 删除文件或文件夹
5
- function deleteSync(target) {
6
-
7
- // 如果文件夹不存在,直接返回即可
8
- if (!fs.existsSync(target)) return;
9
-
10
- // 如果是文件,直接删除即可
11
- if (!fs.lstatSync(target).isDirectory()) {
12
- fs.unlinkSync(target);
13
- } else {
14
-
15
- // 读取子文件
16
- const subFiles = fs.readdirSync(target);
17
-
18
- subFiles.forEach(function (file) {
19
-
20
- // 调用这个方法,删除子文件或文件夹
21
- const curPath = path.join(target, "./" + file);
22
- deleteSync(curPath);
23
-
24
- });
25
-
26
- // 等子文件或文件夹删除完毕以后,删除本文件夹
27
- fs.rmdirSync(target);
28
- }
29
-
30
- };
31
-
32
- // 复制文件或文件夹
33
- function copySync(source, target) {
34
-
35
- // 如果是文件,直接复制即可
36
- if (!fs.lstatSync(source).isDirectory()) {
37
- if (!fs.existsSync(path.join(target, "../"))) fs.mkdirSync(path.join(target, "../"), { recursive: true });
38
-
39
- fs.copyFileSync(source, target);
40
- } else {
41
-
42
- // 读取子文件
43
- const subFiles = fs.readdirSync(source);
44
-
45
- // 如果文件夹不存在,创建
46
- if (!fs.existsSync(target)) {
47
- fs.mkdirSync(target, { recursive: true });
48
- }
49
-
50
- // 复制子文件或文件夹
51
- subFiles.forEach(function (file) {
52
- copySync(path.join(source, "./" + file), path.join(target, "./" + file));
53
- });
54
-
55
- }
56
- };
57
-
58
- // 移动文件或文件夹
59
- function moveSync(source, target) {
60
-
61
- // 如果是文件,直接剪切即可
62
- if (!fs.lstatSync(source).isDirectory()) {
63
- if (!fs.existsSync(path.join(target, "../"))) fs.mkdirSync(path.join(target, "../"), { recursive: true });
64
-
65
- fs.copyFileSync(source, target);
66
- fs.unlinkSync(source);
67
- } else {
68
-
69
- // 读取子文件
70
- const subFiles = fs.readdirSync(source);
71
-
72
- // 如果文件夹不存在,创建
73
- if (!fs.existsSync(target)) {
74
- fs.mkdirSync(target, { recursive: true });
75
- }
76
-
77
- // 移动子文件或文件夹
78
- subFiles.forEach(function (file) {
79
- moveSync(path.join(source, "./" + file), path.join(target, "./" + file));
80
- });
81
-
82
- // 移动完子文件或文件夹以后(移动完毕也意味着子文件或文件夹被删除了)
83
- fs.rmdirSync(source);
84
- }
85
- }
86
-
87
- // 遍历文件或文件夹中所有文件
88
- function listFileSync(source, callback) {
89
- // 文件夹
90
- if (fs.lstatSync(source).isDirectory()) {
91
-
92
- // 读取子内容
93
- const subItems = fs.readdirSync(source);
94
- subItems.forEach(function (item) {
95
- listFileSync(path.join(source, "./" + item), callback);
96
- });
97
- }
98
-
99
- // 文件
100
- else {
101
- let folder = path.join(source, "../");
102
-
103
- callback({
104
- "name": source.replace(folder, ""),
105
- "path": source,
106
- "folder": folder
107
- });
108
- }
109
- }
110
-
111
- // 遍历文件夹中所有文件夹
112
- function listFolderSync(source, callback) {
113
- if (fs.lstatSync(source).isDirectory()) {
114
- (function doIt(source) {
115
-
116
- // 读取子内容
117
- const subItems = fs.readdirSync(source);
118
- subItems.forEach(function (item) {
119
- let itemPath = path.join(source, "./" + item);
120
-
121
- // 如果是文件夹
122
- if (fs.lstatSync(itemPath).isDirectory()) {
123
-
124
- let notDeep = callback({
125
- "name": item,
126
- "path": itemPath
127
- });
128
-
129
- // 深入
130
- if (!notDeep) {
131
- doIt(itemPath);
132
- }
133
-
134
- }
135
- });
136
-
137
- })(source);
138
- }
139
- }
140
-
141
- // 获取文件或文件夹的全路径
142
- function fullPathSync(pathString, contextPath) {
143
- if (/^\//.test(pathString) || /^[A-Za-z]:\\/.test(pathString)) {
144
- // 如果传递的就是全路径
145
- return pathString;
146
- }
147
-
148
- if (arguments.length <= 1) {
149
- // 默认把当前命令行作为上下文路径
150
- contextPath = process.cwd();
151
- }
152
-
153
- // 拼全路径
154
- return path.join(contextPath, pathString);
155
- }
156
-
157
- // 导出
158
- exports.deleteSync = deleteSync;
159
- exports.copySync = copySync;
160
- exports.moveSync = moveSync;
161
- exports.listFileSync = listFileSync;
162
- exports.listFolderSync = listFolderSync;
163
- exports.fullPathSync = fullPathSync;
@@ -1,5 +0,0 @@
1
- const fs = require('fs');
2
-
3
- exports.toBase64 = function (filepath) {
4
- return "data:image/png;base64," + fs.readFileSync(filepath).toString('base64');
5
- };
@@ -1,49 +0,0 @@
1
- /**
2
- *
3
- * 命令行参数解析
4
- *
5
- * @param {JSON} config 命令参数缩小到全写的映射
6
- * @param {Array} argv 需要判断类型的值
7
- *
8
- * @returns {JSON} 返回整理后的参数
9
- *
10
- */
11
- module.exports = function (config, argv) {
12
-
13
- let resultConfig = {
14
- __terminal__: []
15
- }, flag = null;
16
- for (let i = 2; i < argv.length; i++) {
17
-
18
- // 如果是新的配置
19
- if (/^--[0-9a-zA-Z]+$/.test(argv[i]) || /^-[0-9a-zA-Z]$/.test(argv[i])) {
20
- let key = argv[i];
21
-
22
- // 如果是缩写,需要映射
23
- if (key.length == 2) {
24
- key = config[key];
25
-
26
- // 如果是错误缩写
27
- if (!key) {
28
- flag = null;
29
- continue;
30
- }
31
- }
32
-
33
- flag = key.replace(/^--/, "");
34
- resultConfig[flag] = [];
35
- }
36
-
37
- // 如果是普通的参数
38
- else if (flag != null) {
39
- resultConfig[flag].push(argv[i]);
40
- }
41
-
42
- else {
43
- resultConfig.__terminal__.push(argv[i]);
44
- }
45
-
46
- }
47
-
48
- return resultConfig;
49
- };
@@ -1,60 +0,0 @@
1
- const https = require('https');
2
- const http = require('http');
3
-
4
- exports.get = function (url, options = {}) {
5
- return new Promise((resolve, reject) => {
6
-
7
- let handler = /^https/.test(url) ? https : http;
8
-
9
- handler.get(url, res => {
10
- res.on('data', (data) => {
11
- if (options.json) {
12
- resolve(JSON.parse(data.toString('utf8')));
13
- } else {
14
- resolve(data);
15
- }
16
- });
17
- }).on('error', (e) => {
18
- reject(e);
19
- });
20
- });
21
- };
22
-
23
- exports.post = function (url, options = {}) {
24
- return new Promise((resolve, reject) => {
25
-
26
- let handler = /^https/.test(url) ? https : http;
27
-
28
- let execArray = /https*:\/\/([^\/]+)(.+)?/.exec(url);
29
- let hostport = execArray[1].split(":");
30
-
31
- const req = handler.request({
32
- hostname: hostport[0],
33
- port: hostport[1] || 80,
34
- path: execArray[2] || "/",
35
- method: "POST",
36
- headers: options.header || {}
37
- }, (res) => {
38
- res.setEncoding('utf8');
39
-
40
- let data = "";
41
- res.on('data', (chunk) => {
42
- data += chunk;
43
- });
44
- res.on('end', () => {
45
- if (options.json) {
46
- resolve(JSON.parse(data.toString('utf8')));
47
- } else {
48
- resolve(data);
49
- }
50
- });
51
- });
52
-
53
- req.write(options.params || "{}");
54
-
55
- req.on('error', (e) => {
56
- reject(e);
57
- });
58
- req.end();
59
- });
60
- };
@@ -1,28 +0,0 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
-
4
- const Template_404 = require('../data/404');
5
-
6
- // 读取当前路径下的文件,方便服务器404的时候导航
7
- module.exports = function (fullUrl) {
8
-
9
- let files, content = fullUrl;
10
- try {
11
- files = fs.readdirSync(fullUrl);
12
- } catch (e) {
13
- try {
14
- content = path.resolve(fullUrl, '../');
15
- files = fs.readdirSync(content);
16
- } catch (e) {
17
- files = [];
18
- }
19
- }
20
-
21
- let template = "<a href='../'>..</a>";
22
- for (let i in files) {
23
- let isDirectory = fs.lstatSync(path.join(content, files[i])).isDirectory();
24
- template += "<a class='" + (isDirectory ? "folder" : "file") + "' href='./" + files[i] + (isDirectory ? "/" : "") + "'>" + files[i] + "</a>";
25
- }
26
-
27
- return Template_404(template);
28
- };
@@ -1,190 +0,0 @@
1
- const http = require('http');
2
- const fs = require('fs');
3
-
4
- const mineTypes = require('../data/mime.types.js');
5
- const { log, warn, error } = require('./log.js');
6
- const responseFileList = require('./responseFileList.js');
7
- const path = require('path');
8
- const network = require('./network.js');
9
-
10
- const jsonfile = JSON.parse(fs.readFileSync(path.join(__dirname, '../../package.json')));
11
-
12
- module.exports = function (config = {}) {
13
-
14
- let port = config.port || 20000; // 端口号
15
- let handler = typeof config.handler == 'function' ? config.handler : function () { return false; };
16
- let suffixs = Array.isArray(config.suffix) ? config.suffix : [".html", ".htm", ".js", ".json", ".css"];
17
-
18
- let proxy = [];
19
- if (config.proxy) {
20
- for (let item of config.proxy) {
21
- let target = /(https*):\/\/([^/:]+):*(\d+)*(.*)/.exec(item.target) || [];
22
- proxy.push({
23
- test: item.test,
24
- target: {
25
- protocol: target[1], // 使用的协议
26
- hostname: target[2], // 请求发送至的服务器的域名或 IP 地址
27
- port: target[3] || 80, // 端口号
28
- path: target[4] || "", // 路径前缀
29
- }
30
- });
31
- }
32
- }
33
-
34
- let basePath = path.join(process.cwd(), config.basePath || "./"); // 服务器根路径
35
-
36
- let index = 0;
37
- let Server = http.createServer(function (request, response) {
38
- try {
39
- let requestData = "";
40
-
41
- request.on('data', (chunk) => {
42
- requestData += chunk;
43
- });
44
-
45
- request.on('end', () => {
46
- let url = decodeURIComponent(request.url);
47
-
48
- url = url.split("?")[0];
49
-
50
- // 请求的文件路径
51
- let filePath = path.join(basePath, url == "/" ? "index.html" : url.replace(/^\//, ""));
52
-
53
- log("[" + index++ + "]" + url);
54
-
55
- let getFileInfo = function (filePath) {
56
- let dotName = /\./.test(filePath) ? filePath.match(/\.([^.]+)$/)[1] : "";
57
- let type = mineTypes[dotName];
58
- if (fs.existsSync(filePath) && !fs.lstatSync(filePath).isDirectory()) {
59
- return {
60
- type,
61
- path: filePath
62
- };
63
- } else {
64
- for (let suffix of suffixs) {
65
- if (fs.existsSync(filePath + suffix) && !fs.lstatSync(filePath + suffix).isDirectory()) {
66
- type = mineTypes[suffix.replace(/^\./, "")];
67
- return {
68
- type,
69
- path: filePath + suffix
70
- };
71
- }
72
- }
73
- }
74
- };
75
-
76
- // 自定义拦截
77
- if (handler.call({
78
- data: requestData,
79
- base: basePath,
80
- getFileInfo,
81
- filePath
82
- }, request, response)) return;
83
-
84
- // proxy拦截
85
- for (let item of proxy) {
86
- if (item.test.test(url)) {
87
- let _path = item.target.path + (url.replace(item.test, ""));
88
-
89
- warn(" ↳ [" + request.method + "] " + item.target.protocol + "://" + item.target.hostname + ":" + item.target.port + _path);
90
-
91
- // https://www.nodeapp.cn/http.html#http_http_request_options_callback
92
- const req = http.request({
93
- hostname: item.target.hostname,
94
- port: item.target.port,
95
- path: _path,
96
- method: request.method,
97
- headers: request.headers
98
- }, (res) => {
99
- res.setEncoding('utf8');
100
-
101
- let responseData = "";
102
- res.on('data', (chunk) => {
103
- responseData += chunk;
104
- });
105
- res.on('end', () => {
106
- let responseHeaders = res.headers;
107
- responseHeaders['proxy-server'] = "Powered by OIPage@" + jsonfile.version;
108
- responseHeaders['Access-Control-Allow-Origin'] = '*';
109
- response.writeHead(res.statusCode, responseHeaders);
110
- response.write(responseData);
111
- response.end();
112
- });
113
- });
114
-
115
- req.on('error', (e) => {
116
- error(` 转发的时候遇到问题: ${e.message}`);
117
- response.writeHead('500', {
118
- 'Content-type': "text/plain;charset=utf-8",
119
- 'Access-Control-Allow-Origin': '*',
120
- "proxy-server": "Powered by OIPage@" + jsonfile.version
121
- });
122
- response.write(e + "");
123
- response.end();
124
- });
125
-
126
- req.write(requestData);
127
- req.end();
128
-
129
- return;
130
- }
131
- }
132
-
133
- let is404 = true;
134
- let doResponse = function (type, filePath) {
135
- response.writeHead(200, {
136
- 'Content-type': (type || "text/plain") + ";charset=utf-8",
137
- 'Access-Control-Allow-Origin': '*',
138
- 'Server': "Powered by OIPage@" + jsonfile.version
139
- });
140
- response.write(fs.readFileSync(filePath));
141
- is404 = false;
142
- };
143
-
144
- let fileInfo = getFileInfo(filePath);
145
- if (fileInfo) { // 如果文件存在
146
- doResponse(fileInfo.type, fileInfo.path);
147
- }
148
-
149
- if (is404) {
150
- response.writeHead(404, {
151
- 'Content-type': "text/html;charset=utf-8",
152
- 'Access-Control-Allow-Origin': '*',
153
- 'Server': "Powered by OIPage@" + jsonfile.version
154
- });
155
- response.write(responseFileList(filePath));
156
- }
157
-
158
- response.end();
159
- });
160
- } catch (e) {
161
- error(e);
162
-
163
- response.writeHead(500, {
164
- 'Content-type': "text/plain;charset=utf-8",
165
- 'Access-Control-Allow-Origin': '*',
166
- 'Server': "Powered by OIPage@" + jsonfile.version
167
- });
168
- response.write(e + "");
169
-
170
- response.end();
171
- }
172
-
173
- });
174
-
175
- Server.listen(port);
176
-
177
- // 打印启动成功信息
178
-
179
- log('\n<i> [OIPage-server] Project is running at:');
180
- log('<i> [OIPage-server] Loopback: http://localhost:' + port + '/');
181
-
182
- let networkInfo = network();
183
-
184
- // 打印IPv4地址
185
- for (let ipv4 of networkInfo.IPv4) {
186
- log('<i> [OIPage-server] On Your Network (IPv4): http://' + ipv4.address + ':' + port + '/');
187
- }
188
-
189
- log('\nOIPage Server compiled successfully\n');
190
- };
@@ -1,52 +0,0 @@
1
- const img_folder = require("./images/folder");
2
- const img_file = require("./images/file");
3
-
4
- module.exports = function (template) {
5
- return `<!DOCTYPE html>
6
- <html lang="zh-cn">
7
-
8
- <head>
9
- <meta charset="UTF-8">
10
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
11
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
12
- <title>404 Not Found</title>
13
- <style>
14
- body{
15
- margin: 0px;
16
- background-color:#fcfcfc;
17
- display: flex;
18
- flex-wrap:wrap;
19
- padding:100px;
20
- }
21
- body>a{
22
- text-decoration: none;
23
- padding:10px;
24
- color:#000000;
25
- text-align:center;
26
- width:100px;
27
- background-repeat: no-repeat;
28
- background-position: center 0px;
29
- padding-top: 65px;
30
- margin-top: 50px;
31
- font-size:12px;
32
- }
33
- body>a:hover{
34
- outline:1px solid #55b9e6;
35
- }
36
- body>a.folder{
37
- background-image:url('${img_folder}');
38
- }
39
- body>a.file{
40
- background-image:url('${img_file}');
41
- }
42
- </style>
43
- </head>
44
-
45
- <body>
46
-
47
- ${template}
48
-
49
- </body>
50
-
51
- </html>`;
52
- };
@@ -1 +0,0 @@
1
- module.exports = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAYABgAAD/4QR7RXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAADqV6AAAnEAAOpXoAACcQQWRvYmUgUGhvdG9zaG9wIENTNCBXaW5kb3dzADIwMjE6MDU6MDggMDk6NDg6MjcAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMqADAAQAAAABAAAAPAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAANFAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklGAAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAPAAyAwEiAAIRAQMRAf/dAAQABP/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A9TSSQK6aXNLnMBJc+Sf6zklJ0kL7PR/owmONSdAwCdJSUmSWdh5NlNVQyDNNjW+nafzSeK7D/wBRZ/nrRSUpJJJJT//Q9TQ6voH+s/8A6pyIh1fQP9Z//VOSUzTJJklIfsOGdDU2DoRrEHkQo9KsdZ03Ge8lzjW2SeTorA5Cq9G/5Lxf+LakpupJJJKf/9H1NCr+h/af/wBU5FQqwdp0/Of/ANU5JTJMng+CaD4JJXHI+Kq9G/5Lxf8Ai2q0AZGndVejf8l4v/FtSQ3UkkklP//S9TVZ+BQ95eXWNLjJDbHtEn+S121WUklNT9m0fv3f9u2f+TS/ZtH793/btn/k1bSSU1P2bR+/d/29Z/5NWKaa6Km01Daxgho8AppJKUkkkkp//9n/7QlAUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAAAAAAAAAAAAAAAAAAAAAAOEJJTQPtAAAAAAAQAF/8kgABAAIAX/ySAAEAAjhCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQQNAAAAAAAEAAAAeDhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTScQAAAAAAAKAAEAAAAAAAAAAjhCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0D+AAAAAAAcAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAA4QklNBAAAAAAAAAIAAThCSU0EAgAAAAAABAAAAAA4QklNBDAAAAAAAAIBAThCSU0ELQAAAAAABgABAAAAAzhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAAM/AAAABgAAAAAAAAAAAAAAPAAAADIAAAAFZypoB5iYAC0AMQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAMgAAADwAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAAC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TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA0LjIuMi1jMDYzIDUzLjM1MjYyNCwgMjAwOC8wNy8zMC0xODoxMjoxOCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMDUtMDhUMDk6NDg6MjcrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTA1LTA4VDA5OjQ4OjI3KzA4OjAwIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMS0wNS0wOFQwOTo0ODoyNyswODowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozMDBCNjA2NTlGQUZFQjExOTBCNEMyQjY4Q0Q4M0YwQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyRjBCNjA2NTlGQUZFQjExOTBCNEMyQjY4Q0Q4M0YwQiIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGMEI2MDY1OUZBRkVCMTE5MEI0QzJCNjhDRDgzRjBCIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgdGlmZjpPcmllbnRhdGlvbj0iMSIgdGlmZjpYUmVzb2x1dGlvbj0iOTU5ODY2LzEwMDAwIiB0aWZmOllSZXNvbHV0aW9uPSI5NTk4NjYvMTAwMDAiIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiIHRpZmY6TmF0aXZlRGlnZXN0PSIyNTYsMjU3LDI1OCwyNTksMjYyLDI3NCwyNzcsMjg0LDUzMCw1MzEsMjgyLDI4MywyOTYsMzAxLDMxOCwzMTksNTI5LDUzMiwzMDYsMjcwLDI3MSwyNzIsMzA1LDMxNSwzMzQzMjtGOTczNkI5MzBGQUQ2QzBBMjM0ODBDQTRFMzBGOEZBRiIgZXhpZjpQaXhlbFhEaW1lbnNpb249IjUwIiBleGlmOlBpeGVsWURpbWVuc2lvbj0iNjAiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDtFRjZEMzczRjg2RThDNzE3RkY4Q0M2NDlDOTAxQUIzMiI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MkYwQjYwNjU5RkFGRUIxMTkwQjRDMkI2OENEODNGMEIiIHN0RXZ0OndoZW49IjIwMjEtMDUtMDhUMDk6NDg6MjcrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDUzQgV2luZG93cyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MzAwQjYwNjU5RkFGRUIxMTkwQjRDMkI2OENEODNGMEIiIHN0RXZ0OndoZW49IjIwMjEtMDUtMDhUMDk6NDg6MjcrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDUzQgV2luZG93cyIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/iDFhJQ0NfUFJPRklMRQABAQAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl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";
@@ -1 +0,0 @@
1
- module.exports = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAYABgAAD/4QUiRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAADqV6AAAnEAAOpXoAACcQQWRvYmUgUGhvdG9zaG9wIENTNCBXaW5kb3dzADIwMjE6MDU6MDggMDk6NDc6NTAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMqADAAQAAAABAAAAPAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAPsAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklGAAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAPAAyAwEiAAIRAQMRAf/dAAQABP/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A9TQ25FDnFoeNw0LSYP3FEVG/FryGifa8fReOR/5ioc+U4+GgDd7roxB3bsg8J1mUMeHGv1BvaYIMifgrH6yzkO/L+RAZp1cscq7x9aeEdJfa20kDHudYXNdy2PxR1LGQlESHXutIo0pJJJOQ/wD/0PU1XbwrCrNMNVTnNofVfDq5rL9nVbGO1re8NcDx9HlXeo3nDFRrnda7a0c6gb/++rNEO6peCJBI0+QVrqzjs6cTqfWE/wCY9WMPyR8gtlu6db6shgdAdGhB1gp6/wCbb8B+RCxPp2R4N/78i1fzbP6o/InoZJJJJKf/0fU1QL4CvrNyGOqeWnjkHyVLn7EIyGwOv1ZcNWQ5mJZ62dbYBEu4+HtV3q/8307/AI4f9Q9UeliLXucIBcYJ458Vf6uCa+nQCYuEwJP0Hq3hFQj5Mc9y6GJ9N/wb/wB+RKv5tn9UfkQsMy+zQjRuhBB/O8USpwNbR5BPO6EiSSSCn//S9TQsikXVx+cNWlFSTMvBwS4/kr1Jjdit2tRhsZW2RFm0BxHw/O/Nf/aUnUbzW2xrHMr1bp8h7PzUdJOjVCtqUd9WHpR9Bzm/Az+D9yVdYraGjXzKmkihSSSSSn//2f/tCeRQaG90b3Nob3AgMy4wADhCSU0EJQAAAAAAEAAAAAAAAAAAAAAAAAAAAAA4QklNA+0AAAAAABAAX/ySAAEAAgBf/JIAAQACOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0EAAAAAAAAAgAAOEJJTQQCAAAAAAACAAA4QklNBDAAAAAAAAEBADhCSU0ELQAAAAAABgABAAAAAjhCSU0ECAAAAAAAEAAAAAEAAAJA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cDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNCBXaW5kb3dzIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIxLTA1LTA4VDA5OjQ3OjUwKzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMS0wNS0wOFQwOTo0Nzo1MCswODowMCIgeG1wOkNyZWF0ZURhdGU9IjIwMjEtMDUtMDhUMDk6NDc6NTArMDg6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkUwQjYwNjU5RkFGRUIxMTkwQjRDMkI2OENEODNGMEIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkQwQjYwNjU5RkFGRUIxMTkwQjRDMkI2OENEODNGMEIiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyRDBCNjA2NTlGQUZFQjExOTBCNEMyQjY4Q0Q4M0YwQiIgZGM6Zm9ybWF0PSJpbWFnZS9qcGVnIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249Ijk1OTg2Ni8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iOTU5ODY2LzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7MEFGMkU2MzI0QzA3RTM5NkM3NzhBRTE5NTg0NERBMUYiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI1MCIgZXhpZjpQaXhlbFlEaW1lbnNpb249IjYwIiBleGlmOkNvbG9yU3BhY2U9IjEiIGV4aWY6TmF0aXZlRGlnZXN0PSIzNjg2NCw0MDk2MCw0MDk2MSwzNzEyMSwzNzEyMiw0MDk2Miw0MDk2MywzNzUxMCw0MDk2NCwzNjg2NywzNjg2OCwzMzQzNCwzMzQzNywzNDg1MCwzNDg1MiwzNDg1NSwzNDg1NiwzNzM3NywzNzM3OCwzNzM3OSwzNzM4MCwzNzM4MSwzNzM4MiwzNzM4MywzNzM4NCwzNzM4NSwzNzM4NiwzNzM5Niw0MTQ4Myw0MTQ4NCw0MTQ4Niw0MTQ4Nyw0MTQ4OCw0MTQ5Miw0MTQ5Myw0MTQ5NSw0MTcyOCw0MTcyOSw0MTczMCw0MTk4NSw0MTk4Niw0MTk4Nyw0MTk4OCw0MTk4OSw0MTk5MCw0MTk5MSw0MTk5Miw0MTk5Myw0MTk5NCw0MTk5NSw0MTk5Niw0MjAxNiwwLDIsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMjAsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMzA7RUY2RDM3M0Y4NkU4QzcxN0ZGOENDNjQ5QzkwMUFCMzIiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjJEMEI2MDY1OUZBRkVCMTE5MEI0QzJCNjhDRDgzRjBCIiBzdEV2dDp3aGVuPSIyMDIxLTA1LTA4VDA5OjQ3OjUwKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjJFMEI2MDY1OUZBRkVCMTE5MEI0QzJCNjhDRDgzRjBCIiBzdEV2dDp3aGVuPSIyMDIxLTA1LTA4VDA5OjQ3OjUwKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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";