1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const core_1 = require("./util/core");
|
4 | /**
|
5 | * 单词类型
|
6 | */
|
7 | var POSTAG;
|
8 | (function (POSTAG) {
|
9 | /**
|
10 | * 錯字
|
11 | */
|
12 | POSTAG[POSTAG["BAD"] = 2147483648] = "BAD";
|
13 | /**
|
14 | * 形容词 形语素
|
15 | */
|
16 | POSTAG[POSTAG["D_A"] = 1073741824] = "D_A";
|
17 | /**
|
18 | * 区别词 区别语素
|
19 | */
|
20 | POSTAG[POSTAG["D_B"] = 536870912] = "D_B";
|
21 | /**
|
22 | * 连词 连语素
|
23 | */
|
24 | POSTAG[POSTAG["D_C"] = 268435456] = "D_C";
|
25 | // ---
|
26 | /**
|
27 | * 副词 副语素
|
28 | */
|
29 | POSTAG[POSTAG["D_D"] = 134217728] = "D_D";
|
30 | /**
|
31 | * 叹词 叹语素
|
32 | */
|
33 | POSTAG[POSTAG["D_E"] = 67108864] = "D_E";
|
34 | /**
|
35 | * 方位词 方位语素
|
36 | */
|
37 | POSTAG[POSTAG["D_F"] = 33554432] = "D_F";
|
38 | /**
|
39 | * 成语
|
40 | */
|
41 | POSTAG[POSTAG["D_I"] = 16777216] = "D_I";
|
42 | // ---
|
43 | /**
|
44 | * 习语
|
45 | * 類似成語或者曖昧無法分明的用語
|
46 | */
|
47 | POSTAG[POSTAG["D_L"] = 8388608] = "D_L";
|
48 | /**
|
49 | * 数词 数语素
|
50 | * 可以與其他數詞或者量詞合併的詞
|
51 | */
|
52 | POSTAG[POSTAG["A_M"] = 4194304] = "A_M";
|
53 | /**
|
54 | * 数量词
|
55 | */
|
56 | POSTAG[POSTAG["D_MQ"] = 2097152] = "D_MQ";
|
57 | /**
|
58 | * 名词 名语素
|
59 | */
|
60 | POSTAG[POSTAG["D_N"] = 1048576] = "D_N";
|
61 | // ---
|
62 | /**
|
63 | * 拟声词
|
64 | */
|
65 | POSTAG[POSTAG["D_O"] = 524288] = "D_O";
|
66 | /**
|
67 | * 介词
|
68 | */
|
69 | POSTAG[POSTAG["D_P"] = 262144] = "D_P";
|
70 | /**
|
71 | * 量词 量语素
|
72 | * 可以與數詞合併的詞
|
73 | */
|
74 | POSTAG[POSTAG["A_Q"] = 131072] = "A_Q";
|
75 | /**
|
76 | * 代词 代语素
|
77 | */
|
78 | POSTAG[POSTAG["D_R"] = 65536] = "D_R";
|
79 | // ---
|
80 | /**
|
81 | * 处所词
|
82 | */
|
83 | POSTAG[POSTAG["D_S"] = 32768] = "D_S";
|
84 | /**
|
85 | * 时间词
|
86 | */
|
87 | POSTAG[POSTAG["D_T"] = 16384] = "D_T";
|
88 | /**
|
89 | * 助词 助语素
|
90 | */
|
91 | POSTAG[POSTAG["D_U"] = 8192] = "D_U";
|
92 | /**
|
93 | * 动词 动语素
|
94 | */
|
95 | POSTAG[POSTAG["D_V"] = 4096] = "D_V";
|
96 | // ---
|
97 | /**
|
98 | * 标点符号
|
99 | */
|
100 | POSTAG[POSTAG["D_W"] = 2048] = "D_W";
|
101 | /**
|
102 | * 非语素字
|
103 | */
|
104 | POSTAG[POSTAG["D_X"] = 1024] = "D_X";
|
105 | /**
|
106 | * 语气词 语气语素
|
107 | */
|
108 | POSTAG[POSTAG["D_Y"] = 512] = "D_Y";
|
109 | /**
|
110 | * 状态词
|
111 | */
|
112 | POSTAG[POSTAG["D_Z"] = 256] = "D_Z";
|
113 | // ---
|
114 | /**
|
115 | * 人名
|
116 | */
|
117 | POSTAG[POSTAG["A_NR"] = 128] = "A_NR";
|
118 | /**
|
119 | * 地名
|
120 | */
|
121 | POSTAG[POSTAG["A_NS"] = 64] = "A_NS";
|
122 | /**
|
123 | * 机构团体
|
124 | */
|
125 | POSTAG[POSTAG["A_NT"] = 32] = "A_NT";
|
126 | /**
|
127 | * 外文字符
|
128 | */
|
129 | POSTAG[POSTAG["A_NX"] = 16] = "A_NX";
|
130 | // ---
|
131 | /**
|
132 | * 其他专名
|
133 | */
|
134 | POSTAG[POSTAG["A_NZ"] = 8] = "A_NZ";
|
135 | /**
|
136 | * 前接成分
|
137 | */
|
138 | POSTAG[POSTAG["D_ZH"] = 4] = "D_ZH";
|
139 | /**
|
140 | * 后接成分
|
141 | */
|
142 | POSTAG[POSTAG["D_K"] = 2] = "D_K";
|
143 | /**
|
144 | * 网址、邮箱地址
|
145 | */
|
146 | POSTAG[POSTAG["URL"] = 1] = "URL";
|
147 | /**
|
148 | * 未知词性
|
149 | */
|
150 | POSTAG[POSTAG["UNK"] = 0] = "UNK";
|
151 | })(POSTAG = exports.POSTAG || (exports.POSTAG = {}));
|
152 | (function (POSTAG) {
|
153 | POSTAG.POSTAG_KEYS = core_1.enumList(POSTAG);
|
154 | /**
|
155 | * 中文说明
|
156 | */
|
157 | let CHSNAME;
|
158 | (function (CHSNAME) {
|
159 | CHSNAME["BAD"] = "\u932F\u5B57";
|
160 | CHSNAME["D_A"] = "\u5F62\u5BB9\u8BCD \u5F62\u8BED\u7D20";
|
161 | CHSNAME["D_B"] = "\u533A\u522B\u8BCD \u533A\u522B\u8BED\u7D20";
|
162 | CHSNAME["D_C"] = "\u8FDE\u8BCD \u8FDE\u8BED\u7D20";
|
163 | CHSNAME["D_D"] = "\u526F\u8BCD \u526F\u8BED\u7D20";
|
164 | CHSNAME["D_E"] = "\u53F9\u8BCD \u53F9\u8BED\u7D20";
|
165 | CHSNAME["D_F"] = "\u65B9\u4F4D\u8BCD \u65B9\u4F4D\u8BED\u7D20";
|
166 | CHSNAME["D_I"] = "\u6210\u8BED";
|
167 | CHSNAME["D_L"] = "\u4E60\u8BED";
|
168 | CHSNAME["A_M"] = "\u6570\u8BCD \u6570\u8BED\u7D20";
|
169 | CHSNAME["D_MQ"] = "\u6570\u91CF\u8BCD";
|
170 | CHSNAME["D_N"] = "\u540D\u8BCD \u540D\u8BED\u7D20";
|
171 | CHSNAME["D_O"] = "\u62DF\u58F0\u8BCD";
|
172 | CHSNAME["D_P"] = "\u4ECB\u8BCD";
|
173 | CHSNAME["A_Q"] = "\u91CF\u8BCD \u91CF\u8BED\u7D20";
|
174 | CHSNAME["D_R"] = "\u4EE3\u8BCD \u4EE3\u8BED\u7D20";
|
175 | CHSNAME["D_S"] = "\u5904\u6240\u8BCD";
|
176 | CHSNAME["D_T"] = "\u65F6\u95F4\u8BCD";
|
177 | CHSNAME["D_U"] = "\u52A9\u8BCD \u52A9\u8BED\u7D20";
|
178 | CHSNAME["D_V"] = "\u52A8\u8BCD \u52A8\u8BED\u7D20";
|
179 | CHSNAME["D_W"] = "\u6807\u70B9\u7B26\u53F7";
|
180 | CHSNAME["D_X"] = "\u975E\u8BED\u7D20\u5B57";
|
181 | CHSNAME["D_Y"] = "\u8BED\u6C14\u8BCD \u8BED\u6C14\u8BED\u7D20";
|
182 | CHSNAME["D_Z"] = "\u72B6\u6001\u8BCD";
|
183 | CHSNAME["A_NR"] = "\u4EBA\u540D";
|
184 | CHSNAME["A_NS"] = "\u5730\u540D";
|
185 | CHSNAME["A_NT"] = "\u673A\u6784\u56E2\u4F53";
|
186 | CHSNAME["A_NX"] = "\u5916\u6587\u5B57\u7B26";
|
187 | CHSNAME["A_NZ"] = "\u5176\u4ED6\u4E13\u540D";
|
188 | CHSNAME["D_ZH"] = "\u524D\u63A5\u6210\u5206";
|
189 | CHSNAME["D_K"] = "\u540E\u63A5\u6210\u5206";
|
190 | CHSNAME["URL"] = "\u7F51\u5740 \u90AE\u7BB1\u5730\u5740";
|
191 | CHSNAME["UNK"] = "\u672A\u77E5";
|
192 | })(CHSNAME = POSTAG.CHSNAME || (POSTAG.CHSNAME = {}));
|
193 | /**
|
194 | * 繁體中文说明
|
195 | */
|
196 | let ZHNAME;
|
197 | (function (ZHNAME) {
|
198 | ZHNAME["BAD"] = "\u932F\u5B57";
|
199 | ZHNAME["D_A"] = "\u5F62\u5BB9\u8A5E \u5F62\u8A9E\u7D20";
|
200 | ZHNAME["D_B"] = "\u5340\u5225\u8A5E \u5340\u5225\u8A9E\u7D20";
|
201 | ZHNAME["D_C"] = "\u9023\u8A5E \u9023\u8A9E\u7D20";
|
202 | ZHNAME["D_D"] = "\u526F\u8A5E \u526F\u8A9E\u7D20";
|
203 | ZHNAME["D_E"] = "\u5606\u8A5E \u5606\u8A9E\u7D20";
|
204 | ZHNAME["D_F"] = "\u65B9\u4F4D\u8A5E \u65B9\u4F4D\u8A9E\u7D20";
|
205 | ZHNAME["D_I"] = "\u6210\u8A9E";
|
206 | ZHNAME["D_L"] = "\u7FD2\u8A9E";
|
207 | ZHNAME["A_M"] = "\u6578\u8A5E \u6578\u8A9E\u7D20";
|
208 | ZHNAME["D_MQ"] = "\u6578\u91CF\u8A5E";
|
209 | ZHNAME["D_N"] = "\u540D\u8A5E \u540D\u8A9E\u7D20";
|
210 | ZHNAME["D_O"] = "\u64EC\u8072\u8A5E";
|
211 | ZHNAME["D_P"] = "\u4ECB\u8A5E";
|
212 | ZHNAME["A_Q"] = "\u91CF\u8A5E \u91CF\u8A9E\u7D20";
|
213 | ZHNAME["D_R"] = "\u4EE3\u8A5E \u4EE3\u8A9E\u7D20";
|
214 | ZHNAME["D_S"] = "\u8655\u6240\u8A5E";
|
215 | ZHNAME["D_T"] = "\u6642\u9593\u8A5E";
|
216 | ZHNAME["D_U"] = "\u52A9\u8A5E \u52A9\u8A9E\u7D20";
|
217 | ZHNAME["D_V"] = "\u52D5\u8A5E \u52D5\u8A9E\u7D20";
|
218 | ZHNAME["D_W"] = "\u6A19\u9EDE\u7B26\u865F";
|
219 | ZHNAME["D_X"] = "\u975E\u8A9E\u7D20\u5B57";
|
220 | ZHNAME["D_Y"] = "\u8A9E\u6C23\u8A5E \u8A9E\u6C23\u8A9E\u7D20";
|
221 | ZHNAME["D_Z"] = "\u72C0\u614B\u8A5E";
|
222 | ZHNAME["A_NR"] = "\u4EBA\u540D";
|
223 | ZHNAME["A_NS"] = "\u5730\u540D";
|
224 | ZHNAME["A_NT"] = "\u6A5F\u69CB\u5718\u9AD4";
|
225 | ZHNAME["A_NX"] = "\u5916\u6587\u5B57\u7B26";
|
226 | ZHNAME["A_NZ"] = "\u5176\u4ED6\u5C08\u540D";
|
227 | ZHNAME["D_ZH"] = "\u524D\u63A5\u6210\u5206";
|
228 | ZHNAME["D_K"] = "\u5F8C\u63A5\u6210\u5206";
|
229 | ZHNAME["URL"] = "\u7DB2\u5740 \u90F5\u7BB1\u5730\u5740";
|
230 | ZHNAME["UNK"] = "\u672A\u77E5";
|
231 | })(ZHNAME = POSTAG.ZHNAME || (POSTAG.ZHNAME = {}));
|
232 | /**
|
233 | * 英文
|
234 | */
|
235 | let ENNAME;
|
236 | (function (ENNAME) {
|
237 | ENNAME["D_A"] = "a";
|
238 | ENNAME["D_B"] = "b";
|
239 | ENNAME["D_C"] = "c";
|
240 | ENNAME["D_D"] = "d";
|
241 | ENNAME["D_E"] = "e";
|
242 | ENNAME["D_F"] = "f";
|
243 | ENNAME["D_I"] = "i";
|
244 | ENNAME["D_L"] = "l";
|
245 | ENNAME["A_M"] = "m";
|
246 | ENNAME["D_MQ"] = "mq";
|
247 | ENNAME["D_N"] = "n";
|
248 | ENNAME["D_O"] = "o";
|
249 | ENNAME["D_P"] = "p";
|
250 | ENNAME["A_Q"] = "q";
|
251 | ENNAME["D_R"] = "r";
|
252 | ENNAME["D_S"] = "s";
|
253 | ENNAME["D_T"] = "t";
|
254 | ENNAME["D_U"] = "u";
|
255 | ENNAME["D_V"] = "v";
|
256 | ENNAME["D_W"] = "w";
|
257 | ENNAME["D_X"] = "x";
|
258 | ENNAME["D_Y"] = "y";
|
259 | ENNAME["D_Z"] = "z";
|
260 | ENNAME["A_NR"] = "nr";
|
261 | ENNAME["A_NS"] = "ns";
|
262 | ENNAME["A_NT"] = "nt";
|
263 | ENNAME["A_NX"] = "nx";
|
264 | ENNAME["A_NZ"] = "nz";
|
265 | ENNAME["D_ZH"] = "h";
|
266 | ENNAME["D_K"] = "k";
|
267 | ENNAME["URL"] = "uri";
|
268 | ENNAME["UNK"] = "un";
|
269 | })(ENNAME = POSTAG.ENNAME || (POSTAG.ENNAME = {}));
|
270 | POSTAG.POSTAG_KEYS.forEach(function (key) {
|
271 | let lc = key.toLowerCase();
|
272 | POSTAG[lc] = POSTAG[key];
|
273 | CHSNAME[lc] = CHSNAME[key];
|
274 | ZHNAME[lc] = ZHNAME[key];
|
275 | ENNAME[lc] = ENNAME[key];
|
276 | });
|
277 | POSTAG.enName = getPOSTagTranslator(POSTAG, ENNAME);
|
278 | POSTAG.chsName = getPOSTagTranslator(POSTAG, CHSNAME);
|
279 | POSTAG.zhName = getPOSTagTranslator(POSTAG, ZHNAME);
|
280 | function getPOSTagTranslator(POSTagDict, I18NDict) {
|
281 | return (p) => {
|
282 | if (core_1.enumIsNaN(p)) {
|
283 | return I18NDict[p] || I18NDict.UNK;
|
284 | }
|
285 | if (typeof p == 'string') {
|
286 | p = Number(p);
|
287 | }
|
288 | let ret = POSTAG.POSTAG_KEYS.reduce(function (ret, i) {
|
289 | if ((p & POSTAG[i]))
|
290 | //if ((<number>p & <number>POSTAG[i]) > 0)
|
291 | {
|
292 | ret.push(I18NDict[i] || i);
|
293 | }
|
294 | return ret;
|
295 | }, []);
|
296 | if (ret.length < 1) {
|
297 | return I18NDict.UNK;
|
298 | }
|
299 | else {
|
300 | return ret.toString();
|
301 | }
|
302 | };
|
303 | }
|
304 | POSTAG.getPOSTagTranslator = getPOSTagTranslator;
|
305 | })(POSTAG = exports.POSTAG || (exports.POSTAG = {}));
|
306 | //console.log(POSTAG);
|
307 | //console.log(POSTAG.chsName(0x00000008 | 0x00000010));
|
308 | exports.default = POSTAG;
|
309 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUE9TVEFHLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiUE9TVEFHLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7QUFFYixzQ0FBa0Q7QUFFbEQ7O0dBRUc7QUFDSCxJQUFZLE1BZ0tYO0FBaEtELFdBQVksTUFBTTtJQUdqQjs7T0FFRztJQUNILDBDQUFnQixDQUFBO0lBQ2hCOztPQUVHO0lBQ0gsMENBQWdCLENBQUE7SUFDaEI7O09BRUc7SUFDSCx5Q0FBZ0IsQ0FBQTtJQUNoQjs7T0FFRztJQUNILHlDQUFnQixDQUFBO0lBRWhCLE1BQU07SUFFTjs7T0FFRztJQUNILHlDQUFnQixDQUFBO0lBQ2hCOztPQUVHO0lBQ0gsd0NBQWdCLENBQUE7SUFDaEI7O09BRUc7SUFDSCx3Q0FBZ0IsQ0FBQTtJQUNoQjs7T0FFRztJQUNILHdDQUFnQixDQUFBO0lBRWhCLE1BQU07SUFFTjs7O09BR0c7SUFDSCx1Q0FBZ0IsQ0FBQTtJQUNoQjs7O09BR0c7SUFDSCx1Q0FBZ0IsQ0FBQTtJQUNoQjs7T0FFRztJQUNILHlDQUFpQixDQUFBO0lBQ2pCOztPQUVHO0lBQ0gsdUNBQWdCLENBQUE7SUFFaEIsTUFBTTtJQUVOOztPQUVHO0lBQ0gsc0NBQWdCLENBQUE7SUFDaEI7O09BRUc7SUFDSCxzQ0FBZ0IsQ0FBQTtJQUNoQjs7O09BR0c7SUFDSCxzQ0FBZ0IsQ0FBQTtJQUNoQjs7T0FFRztJQUNILHFDQUFnQixDQUFBO0lBRWhCLE1BQU07SUFFTjs7T0FFRztJQUNILHFDQUFnQixDQUFBO0lBQ2hCOztPQUVHO0lBQ0gscUNBQWdCLENBQUE7SUFDaEI7O09BRUc7SUFDSCxvQ0FBZ0IsQ0FBQTtJQUNoQjs7T0FFRztJQUNILG9DQUFnQixDQUFBO0lBRWhCLE1BQU07SUFFTjs7T0FFRztJQUNILG9DQUFnQixDQUFBO0lBQ2hCOztPQUVHO0lBQ0gsb0NBQWdCLENBQUE7SUFDaEI7O09BRUc7SUFDSCxtQ0FBZ0IsQ0FBQTtJQUNoQjs7T0FFRztJ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TmFOIH0gZnJvbSAnLi91dGlsL2NvcmUnO1xuXG4vKipcbiAqIOWNleivjeexu+Wei1xuICovXG5leHBvcnQgZW51bSBQT1NUQUdcbntcblx0XG5cdC8qKlxuXHQgKiDpjK/lrZdcblx0ICovXG5cdEJBRCA9IDB4ODAwMDAwMDAsXG5cdC8qKlxuXHQgKiDlvaLlrrnor40g5b2i6K+t57SgXG5cdCAqL1xuXHREX0EgPSAweDQwMDAwMDAwLFxuXHQvKipcblx0ICog5Yy65Yir6K+NIOWMuuWIq+ivree0oFxuXHQgKi9cblx0RF9CID0gMHgyMDAwMDAwMCxcblx0LyoqXG5cdCAqIOi/nuivjSDov57or63ntKBcblx0ICovXG5cdERfQyA9IDB4MTAwMDAwMDAsXG5cblx0Ly8gLS0tXG5cblx0LyoqXG5cdCAqIOWJr+ivjSDlia/or63ntKBcblx0ICovXG5cdERfRCA9IDB4MDgwMDAwMDAsXG5cdC8qKlxuXHQgKiDlj7nor40g5Y+56K+t57SgXG5cdCAqL1xuXHREX0UgPSAweDA0MDAwMDAwLFxuXHQvKipcblx0ICog5pa55L2N6K+NIOaWueS9jeivree0oFxuXHQgKi9cblx0RF9GID0gMHgwMjAwMDAwMCxcblx0LyoqXG5cdCAqIOaIkOivrVxuXHQgKi9cblx0RF9JID0gMHgwMTAwMDAwMCxcblxuXHQvLyAtLS1cblxuXHQvKipcblx0ICog5Lmg6K+tXG5cdCAqIOmhnuS8vOaIkOiqnuaIluiAheabluaYp+eEoeazleWIhuaYjueahOeUqOiqnlxuXHQgKi9cblx0RF9MID0gMHgwMDgwMDAwMCxcblx0LyoqXG5cdCAqIOaVsOivjSDmlbDor63ntKBcblx0ICog5Y+v5Lul6IiH5YW25LuW5pW46Kme5oiW6ICF6YeP6Kme5ZCI5L2155qE6KmeXG5cdCAqL1xuXHRBX00gPSAweDAwNDAwMDAwLFxuXHQvKipcblx0ICog5pWw6YeP6K+NXG5cdCAqL1xuXHREX01RID0gMHgwMDIwMDAwMCxcblx0LyoqXG5cdCAqIOWQjeivjSDlkI3or63ntKBcblx0ICovXG5cdERfTiA9IDB4MDAxMDAwMDAsXG5cblx0Ly8gLS0tXG5cblx0LyoqXG5cdCAqIOaLn+WjsOivjVxuXHQgKi9cblx0RF9PID0gMHgwMDA4MDAwMCxcblx0LyoqXG5cdCAqIOS7i+ivjVxuXHQgKi9cblx0RF9QID0gMHgwMDA0MDAwMCxcblx0LyoqXG5cdCAqIOmHj+ivjSDph4/or63ntKBcblx0ICog5Y+v5Lul6IiH5pW46Kme5ZCI5L2155qE6KmeXG5cdCAqL1xuXHRBX1EgPSAweDAwMDIwMDAwLFxuXHQvKipcblx0ICog5Luj6K+NIOS7o+ivree0oFxuXHQgKi9cblx0RF9SID0gMHgwMDAxMDAwMCxcblxuXHQvLyAtLS1cblxuXHQvKipcblx0ICog5aSE5omA6K+NXG5cdCAqL1xuXHREX1MgPSAweDAwMDA4MDAwLFxuXHQvKipcblx0ICog5pe26Ze06K+NXG5cdCAqL1xuXHREX1QgPSAweDAwMDA0MDAwLFxuXHQvKipcblx0ICog5Yqp6K+NIOWKqeivree0oFxuXHQgKi9cblx0RF9VID0gMHgwMDAwMjAwMCxcblx0LyoqXG5cdCAqIOWKqOivjSDliqjor63ntKBcblx0ICovXG5cdERfViA9IDB4MDAwMDEwMDAsXG5cblx0Ly8gLS0tXG5cblx0LyoqXG5cdCAqIOagh+eCueespuWPt1xuXHQgKi9cblx0RF9XID0gMHgwMDAwMDgwMCxcblx0LyoqXG5cdCAqIOmdnuivree0oOWtl1xuXHQgKi9cblx0RF9YID0gMHgwMDAwMDQwMCxcblx0LyoqXG5cdCAqIOivreawlOivjSDor63msJTor63ntKBcblx0ICovXG5cdERfWSA9IDB4MDAwMDAyMDAsXG5cdC8qKlxuXHQgKiDnirbmgIHor41cblx0ICovXG5cdERfWiA9IDB4MDAwMDAxMDAsXG5cblx0Ly8gLS0tXG5cblx0LyoqXG5cdCAqIOS6uuWQjVxuXHQgKi9cblx0QV9OUiA9IDB4MDAwMDAwODAsXG5cdC8qKlxuXHQgKiDlnLDlkI1cblx0ICovXG5cdEFfTlMgPSAweDAwMDAwMDQwLFxuXHQvKipcblx0ICog5py65p6E5Zui5L2TXG5cdCAqL1xuXHRBX05UID0gMHgwMDAwMDAyMCxcblx0LyoqXG5cdCAqIOWkluaWh+Wtl+esplxuXHQgKi9cblx0QV9OWCA9IDB4MDAwMDAwMTAsXG5cblx0Ly8gLS0tXG5cblx0LyoqXG5cdCAqIOWFtuS7luS4k+WQjVxuXHQgKi9cblx0QV9OWiA9IDB4MDAwMDAwMDgsXG5cdC8qKlxuXHQgKiDliY3mjqXmiJDliIZcblx0ICovXG5cdERfWkggPSAweDAwMDAwMDA0LFxuXHQvKipcblx0ICog5ZCO5o6l5oiQ5YiGXG5cdCAqL1xuXHREX0sgPSAweDAwMDAwMDAyLFxuXHQvKipcblx0ICog572R5Z2A44CB6YKu566x5Zyw5Z2AXG5cdCAqL1xuXHRVUkwgPSAweDAwMDAwMDAxLFxuXG5cdC8qKlxuXHQgKiDmnKrnn6Xor43mgKdcblx0ICovXG5cdFVOSyA9IDB4MDAwMDAwMDAsXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUE9TVEFHXG57XG5cdGV4cG9ydCBjb25zdCBQT1NUQUdfS0VZUyA9IGVudW1MaXN0KFBPU1RBRyk7XG5cblx0LyoqXG5cdCAqIOS4reaWh+ivtOaYjlxuXHQgKi9cblx0ZXhwb3J0IGVudW0gQ0hTTkFNRVxuXHR7XG5cdFx0QkFEID0gJ+mMr+WtlycsXG5cdFx0RF9BID0gJ+W9ouWuueivjSDlvaLor63ntKAnLFxuXHRcdERfQiA9ICfljLrliKvor40g5Yy65Yir6K+t57SgJyxcblx0XHREX0MgPSAn6L+e6K+NIOi/nuivree0oCcsXG5cdFx0RF9EID0gJ+WJr+ivjSDlia/or63ntKAnLFxuXHRcdERfRSA9ICflj7nor40g5Y+56K+t57SgJyxcblx0XHREX0YgPSAn5pa55L2N6K+NIOaWueS9jeivree0oCcsXG5cdFx0RF9JID0gJ+aIkOivrScsXG5cdFx0RF9MID0gJ+S5oOivrScsXG5cdFx0QV9NID0gJ+aVsOivjSDmlbDor63ntKAnLFxuXHRcdERfTVEgPSAn5pWw6YeP6K+NJyxcblx0XHREX04gPSAn5ZCN6K+NIOWQjeivree0oCcsXG5cdFx0RF9PID0gJ+aLn+WjsOivjScsXG5cdFx0RF9QID0gJ+S7i+ivjScsXG5cdFx0QV9RID0gJ+mHj+ivjSDph4/or63ntKAnLFxuXHRcdERfUiA9ICfku6Por40g5Luj6K+t57SgJyxcblx0XHREX1MgPSAn5aSE5omA6K+NJyxcblx0XHREX1QgPSAn5pe26Ze06K+NJyxcblx0XHREX1UgPSAn5Yqp6K+NIOWKqeivree0oCcsXG5cdFx0RF9WID0gJ+WKqOivjSDliqjor63ntKAnLFxuXHRcdERfVyA9ICfmoIfngrnnrKblj7cnLFxuXHRcdERfWCA9ICfpnZ7or63ntKDlrZcnLFxuXHRcdERfWSA9ICfor63msJTor40g6K+t5rCU6K+t57SgJyxcblx0XHREX1ogPSAn54q25oCB6K+NJyxcblx0XHRBX05SID0gJ+S6uuWQjScsXG5cdFx0QV9OUyA9ICflnLDlkI0nLFxuXHRcdEFfTlQgPSAn5py65p6E5Zui5L2TJyxcblx0XHRBX05YID0gJ+WkluaWh+Wtl+espicsXG5cdFx0QV9OWiA9ICflhbbku5bkuJPlkI0nLFxuXHRcdERfWkggPSAn5YmN5o6l5oiQ5YiGJyxcblx0XHREX0sgPSAn5ZCO5o6l5oiQ5YiGJyxcblx0XHRVUkwgPSAn572R5Z2AIOmCrueuseWcsOWdgCcsXG5cdFx0VU5LID0gJ+acquefpScsXG5cdH1cblxuXHQvKipcblx0ICog57mB6auU5Lit5paH6K+05piOXG5cdCAqL1xuXHRleHBvcnQgZW51bSBaSE5BTUVcblx0e1xuXHRcdEJBRCA9ICfpjK/lrZcnLFxuXHRcdERfQSA9ICflvaLlrrnoqZ4g5b2i6Kqe57SgJyxcblx0XHREX0IgPSAn5Y2A5Yil6KmeIOWNgOWIpeiqnue0oCcsXG5cdFx0RF9DID0gJ+mAo+ipniDpgKPoqp7ntKAnLFxuXHRcdERfRCA9ICflia/oqZ4g5Ymv6Kqe57SgJyxcblx0XHREX0UgPSAn5ZiG6KmeIOWYhuiqnue0oCcsXG5cdFx0RF9GID0gJ+aWueS9jeipniDmlrnkvY3oqp7ntKAnLFxuXHRcdERfSSA9ICfmiJDoqp4nLFxuXHRcdERfTCA9ICfnv5Loqp4nLFxuXHRcdEFfTSA9ICfmlbjoqZ4g5pW46Kqe57SgJyxcblx0XHREX01RID0gJ+aVuOmHj+ipnicsXG5cdFx0RF9OID0gJ+WQjeipniDlkI3oqp7ntKAnLFxuXHRcdERfTyA9ICfmk6zogbLoqZ4nLFxuXHRcdERfUCA9ICfku4voqZ4nLFxuXHRcdEFfUSA9ICfph4/oqZ4g6YeP6Kqe57SgJyxcblx0XHREX1IgPSAn5Luj6KmeIOS7o+iqnue0oCcsXG5cdFx0RF9TID0gJ+iZleaJgOipnicsXG5cdFx0RF9UID0gJ+aZgumWk+ipnicsXG5cdFx0RF9VID0gJ+WKqeipniDliqnoqp7ntKAnLFxuXHRcdERfViA9ICfli5XoqZ4g5YuV6Kqe57SgJyxcblx0XHREX1cgPSAn5qiZ6bue56ym6JmfJyxcblx0XHREX1ggPSAn6Z2e6Kqe57Sg5a2XJyxcblx0XHREX1kgPSAn6Kqe5rCj6KmeIOiqnuawo+iqnue0oCcsXG5cdFx0RF9aID0gJ+eLgOaFi+ipnicsXG5cdFx0QV9OUiA9ICfkurrlkI0nLFxuXHRcdEFfTlMgPSAn5Zyw5ZCNJyxcblx0XHRBX05UID0gJ+apn+ani+WcmOmrlCcsXG5cdFx0QV9OWCA9ICflpJbmloflrZfnrKYnLFxuXHRcdEFfTlogPSAn5YW25LuW5bCI5ZCNJyxcblx0XHREX1pIID0gJ+WJjeaOpeaIkOWIhicsXG5cdFx0RF9LID0gJ+W+jOaOpeaIkOWIhicsXG5cdFx0VVJMID0gJ+e2suWdgCDpg7XnrrHlnLDlnYAnLFxuXHRcdFVOSyA9ICfmnKrnn6UnLFxuXHR9XG5cblx0LyoqXG5cdCAqIOiLseaWh1xuXHQgKi9cblx0ZXhwb3J0IGVudW0gRU5OQU1FXG5cdHtcblx0XHREX0EgPSAnYScsXG5cdFx0RF9CID0gJ2InLFxuXHRcdERfQyA9ICdjJyxcblx0XHREX0QgPSAnZCcsXG5cdFx0RF9FID0gJ2UnLFxuXHRcdERfRiA9ICdmJyxcblx0XHREX0kgPSAnaScsXG5cdFx0RF9MID0gJ2wnLFxuXHRcdEFfTSA9ICdtJyxcblx0XHREX01RID0gJ21xJyxcblx0XHREX04gPSAnbicsXG5cdFx0RF9PID0gJ28nLFxuXHRcdERfUCA9ICdwJyxcblx0XHRBX1EgPSAncScsXG5cdFx0RF9SID0gJ3InLFxuXHRcdERfUyA9ICdzJyxcblx0XHREX1QgPSAndCcsXG5cdFx0RF9VID0gJ3UnLFxuXHRcdERfViA9ICd2Jyxcblx0XHREX1cgPSAndycsXG5cdFx0RF9YID0gJ3gnLFxuXHRcdERfWSA9ICd5Jyxcblx0XHREX1ogPSAneicsXG5cdFx0QV9OUiA9ICducicsXG5cdFx0QV9OUyA9ICducycsXG5cdFx0QV9OVCA9ICdudCcsXG5cdFx0QV9OWCA9ICdueCcsXG5cdFx0QV9OWiA9ICdueicsXG5cdFx0RF9aSCA9ICdoJyxcblx0XHREX0sgPSAnaycsXG5cdFx0VVJMID0gJ3VyaScsXG5cdFx0VU5LID0gJ3VuJyxcblx0fVxuXG5cdFBPU1RBR19LRVlTLmZvckVhY2goZnVuY3Rpb24gKGtleSlcblx0e1xuXHRcdGxldCBsYyA9IGtleS50b0xvd2VyQ2FzZSgpO1xuXG5cdFx0UE9TVEFHW2xjXSA9IFBPU1RBR1trZXldO1xuXHRcdENIU05BTUVbbGNdID0gQ0hTTkFNRVtrZXldO1xuXHRcdFpITkFNRVtsY10gPSBaSE5BTUVba2V5XTtcblx0XHRFTk5BTUVbbGNdID0gRU5OQU1FW2tleV07XG5cdH0pO1xuXG5cdGV4cG9ydCBjb25zdCBlbk5hbWUgPSBnZXRQT1NUYWdUcmFuc2xhdG9yKFBPU1RBRywgRU5OQU1FKTtcblx0ZXhwb3J0IGNvbnN0IGNoc05hbWUgPSBnZXRQT1NUYWdUcmFuc2xhdG9yKFBPU1RBRywgQ0hTTkFNRSk7XG5cdGV4cG9ydCBjb25zdCB6aE5hbWUgPSBnZXRQT1NUYWdUcmFuc2xhdG9yKFBPU1RBRywgWkhOQU1FKTtcblxuXHRleHBvcnQgZnVuY3Rpb24gZ2V0UE9TVGFnVHJhbnNsYXRvcihQT1NUYWdEaWN0OiB0eXBlb2YgUE9TVEFHLCBJMThORGljdClcblx0e1xuXHRcdHJldHVybiAocDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nID0+XG5cdFx0e1xuXHRcdFx0aWYgKGVudW1Jc05hTihwKSlcblx0XHRcdHtcblx0XHRcdFx0cmV0dXJuIEkxOE5EaWN0W3BdIHx8IEkxOE5EaWN0LlVOSztcblx0XHRcdH1cblxuXHRcdFx0aWYgKHR5cGVvZiBwID09ICdzdHJpbmcnKVxuXHRcdFx0e1xuXHRcdFx0XHRwID0gTnVtYmVyKHApO1xuXHRcdFx0fVxuXG5cdFx0XHRsZXQgcmV0ID0gUE9TVEFHX0tFWVMucmVkdWNlKGZ1bmN0aW9uIChyZXQsIGkpXG5cdFx0XHR7XG5cdFx0XHRcdGlmICgoPG51bWJlcj5wICYgPG51bWJlcj5QT1NUQUdbaV0pKVxuXHRcdFx0XHQvL2lmICgoPG51bWJlcj5wICYgPG51bWJlcj5QT1NUQUdbaV0pID4gMClcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHJldC5wdXNoKEkxOE5EaWN0W2ldIHx8IGkpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH0sIFtdKTtcblxuXHRcdFx0aWYgKHJldC5sZW5ndGggPCAxKVxuXHRcdFx0e1xuXHRcdFx0XHRyZXR1cm4gSTE4TkRpY3QuVU5LO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZVxuXHRcdFx0e1xuXHRcdFx0XHRyZXR1cm4gcmV0LnRvU3RyaW5nKCk7XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxufVxuXG4vL2NvbnNvbGUubG9nKFBPU1RBRyk7XG4vL2NvbnNvbGUubG9nKFBPU1RBRy5jaHNOYW1lKDB4MDAwMDAwMDggfCAweDAwMDAwMDEwKSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBPU1RBRztcbiJdfQ== |
\ | No newline at end of file |